Summarizing Control Flow of Callbacks for Android API Methods
نویسندگان
چکیده
Ensuring the reliability and security of Android apps is important considering the large Android market and the critical usage of Android apps. To analyze and test Android apps, we need to know program paths, i.e., the control flow of callbacks implemented in the apps. One of the challenges to identify such information is the extensive use of the Android API methods in the apps. These methods can invoke multiple callbacks, and the control flow of these callbacks is context-sensitive in that different callback sequences may be invoked at different API call sites. To address the challenge, in this paper, we design a summary representation for an Android API method that aims to capture the control flow of callbacks in the API methods as well as the conditions under which the callbacks are invoked. We developed a static demand-driven analysis to automatically generate such summaries. To show the usefulness of the summaries, we construct the apps’ control flow graphs (CFGs) and apply infeasible path detection on the CFGs. Our experiments show that we are able to generate the API summaries that are compact and reusable, and by replacing the API calls with the summaries we generated, we obtained the apps’ CFGs with paths up to 10 callbacks for a set of Android apps under study. Comparing to the dynamic traces generated, we verified that such paths contain valid callback sequences. The API summaries and the CFGs of the apps computed for this work are all available at: http: //www.cs.iastate.edu/~weile/research/lithium.html
منابع مشابه
EdgeMiner: Automatically Detecting Implicit Control Flow Transitions through the Android Framework
A wealth of recent research proposes static data flow analysis for the security analysis of Android applications. One of the building blocks that these analysis systems rely upon is the computation of a precise control flow graph. The callback mechanism provided and orchestrated by the Android framework makes the correct generation of the control flow graph a challenging endeavor. From the anal...
متن کاملSynthesis of Interface Specifications for Android Classes
Event-driven programming frameworks interact with client code using callins (framework methods that the client invokes) and callbacks (client methods that the framework invokes). The protocols for interacting with such frameworks can often be described by finite-state machines we dub asynchronous typestates. Asynchronous typestates are akin to classical typestates, with the key difference that ...
متن کاملStatic Detection of Event-based Races in Android Apps
Event-based races are the predominant source of concurrency errors in Android apps. So far all the approaches for detecting event-based races have been dynamic. Due to their dynamic nature, these approaches suffer from coverage and false negative issues, and despite being dynamic they still have a high rate of false positives. We introduce a static approach and tool, named SIERRA, for detecting...
متن کاملA Survey on Potential Privacy Leaks of GPS Information in Android Applications
....................................................................... iii ACKNOWLEDGEMENTS...................................................... iv TABLE OF CONTENTS......................................................... v LIST OF TABLES................................................................. ix LIST OF FIGURES............................................................... x CHAPTE...
متن کاملLearning Asynchronous Typestates for Android Classes
In event-driven programming frameworks, such as Android, the client and the framework interact using callins (framework methods that the client invokes) and callbacks (client methods that the framework invokes). The protocols for interacting with these frameworks can often be described by finite-state machines we dub asynchronous typestates. Asynchronous typestates are akin to classical typesta...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016